Cloud architectures are used in cloud computing and cloud storage systems for offering infrastructure-as-a-service (IaaS) cloud services. Examples of cloud architectures include the VMware vCloud® Air™ cloud architecture software, Amazon EC2™ web service, and OpenStack™ open source cloud computing service. IaaS cloud service is a type of cloud service that provides access to physical and/or virtual resources in a cloud environment. These services provide a tenant application programming interface (API) that supports operations for manipulating IaaS constructs, such as virtual machines (VMs) and logical networks.
A hybrid cloud system aggregates the resource capability from both private and public clouds. A private cloud can include one or more customer data centers (referred to herein as “on-premise data centers”). The public cloud can include a multi-tenant cloud architecture providing IaaS cloud services. In a hybrid cloud system, it is desirable to support VM migration between the on-premise data centers and the public cloud for various reasons, such as workload management. However, independent software vendor (ISV) applications that may be running on VMs typically have different end-user license terms for running on a public cloud and running on a private cloud. Thus, a mechanism should be available to allow ISV applications running on VMs in a hybrid cloud system to apply different end-user license terms when the VMs are moved between the private and public clouds.